package com.rtx.model.dto.response;

import java.io.Serializable;

/**
 * 接口平台-新开发的接口-响应对象
 *
 * @author Zy
 */
public class ResponseHelper<T> implements Serializable {

    /**
     * 操作成功默认： code + msg
     *
     * @param <T>
     * @return
     */
    public static <T> ApiResponse<T> success() {
        return new ApiResponse<T>();
    }

    /**
     * 操作成功默认： code + msg
     *
     * @param model
     * @param <T>
     * @return
     */
    public static <T> ApiResponse<T> success(T model) {
        return successWith(model, ResultCode.SUCCESS);
    }

    /**
     * 作成功自定义错误： code + msg
     *
     * @param t
     * @param resultCode
     * @param <T>
     * @return
     */
    public static <T> ApiResponse<T> successWith(T t, ResultCode resultCode) {
        return new ApiResponse<T>(t, resultCode);
    }

    /**
     * 操作失败默认： code + msg
     *
     * @param model
     * @param <T>
     * @return
     */
    public static <T> ApiResponse<T> failed(T model) {
        return failedWith(model, ResultCode.FAILED);
    }

    /**
     * 操作失败自定义错误： code + msg
     *
     * @param t
     * @param resultCode
     * @param <T>
     * @return
     */
    public static <T> ApiResponse<T> failedWith(T t, ResultCode resultCode) {
        return new ApiResponse<>(t, resultCode);
    }

    /**
     * 操作失败自定义错误： code + msg
     *
     * @param message
     * @param <T>
     * @return
     */
    public static <T> ApiResponse<T> failedWith(String message) {
        return new ApiResponse<>(ResultCode.VALIDATE.getCode(), message);
    }
}
